package com.promesa.hilo;

import com.promesa.gui.VentanaPrincipal;
import com.promesa.util.Util;
import java.util.List;
import javax.swing.JOptionPane;

public class BarraHilo extends Thread {

    private int opcion;
    private List<String> listaNombreArchivosFTP;

    @Override
    public void run() {
        VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(true);
        switch (opcion) {
            case 1:
                VentanaPrincipal.obtenerInstancia().getjBtnActualizarAplicacion().setEnabled(false);
                VentanaPrincipal.obtenerInstancia().getjBtnInstalacionPersonalizada().setEnabled(false);
                if(Util.instalarAplicacion()){
                    VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(false);
                    JOptionPane.showMessageDialog(VentanaPrincipal.obtenerInstancia(), "Se instaló la aplicación correctamente.");
                }else{
                    VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(false);
                    JOptionPane.showMessageDialog(VentanaPrincipal.obtenerInstancia(), "No se instaló la aplicación correctamente.");
                }
                VentanaPrincipal.obtenerInstancia().dispose();
//                VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(false);
//                VentanaPrincipal.obtenerInstancia().getjBtnActualizarAplicacion().setEnabled(true);
//                VentanaPrincipal.obtenerInstancia().getjBtnInstalacionPersonalizada().setEnabled(true);
                break;
            case 2:
                VentanaPrincipal.obtenerInstancia().getjBtnInstalarAplicacion().setEnabled(false);
                VentanaPrincipal.obtenerInstancia().getjBtnInstalacionPersonalizada().setEnabled(false);
                if(Util.actualizarAplicacion()){
                    VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(false);
                    JOptionPane.showMessageDialog(VentanaPrincipal.obtenerInstancia(), "Se actualizó la aplicación correctamente.");
                }else{
                    VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(false);
                    JOptionPane.showMessageDialog(VentanaPrincipal.obtenerInstancia(), "No se actualizó la aplicación correctamente.");
                }
                VentanaPrincipal.obtenerInstancia().dispose();
//                VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(false);
//                VentanaPrincipal.obtenerInstancia().getjBtnInstalarAplicacion().setEnabled(true);
//                VentanaPrincipal.obtenerInstancia().getjBtnInstalacionPersonalizada().setEnabled(true);
                break;
            case 3:
                VentanaPrincipal.obtenerInstancia().getjBtnInstalarAplicacion().setEnabled(false);
                VentanaPrincipal.obtenerInstancia().getjBtnActualizarAplicacion().setEnabled(false);
                if(Util.instalarAplicacionPersonalizada(listaNombreArchivosFTP)){
                    VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(false);
                    JOptionPane.showMessageDialog(VentanaPrincipal.obtenerInstancia(), "La instalación personalizada de la aplicación se realizó correctamente.");
                }else{
                    VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(false);
                    JOptionPane.showMessageDialog(VentanaPrincipal.obtenerInstancia(), "La instalación personalizada de la aplicación no se realizó correctamente.");
                }
                VentanaPrincipal.obtenerInstancia().dispose();
//                VentanaPrincipal.obtenerInstancia().establecerEstadoBarraProgreso(false);
//                VentanaPrincipal.obtenerInstancia().getjBtnInstalarAplicacion().setEnabled(true);
//                VentanaPrincipal.obtenerInstancia().getjBtnActualizarAplicacion().setEnabled(true);
                break;
        }
    }

    public BarraHilo(int opcion) {
        this.opcion = opcion;
    }

    public BarraHilo(int opcion, List<String> listaNombreArchivosFTP) {
        this.opcion = opcion;
        this.listaNombreArchivosFTP = listaNombreArchivosFTP;
    }
}
